Computer Programming II

Grade Levels: 10-12
Units of Credit: 1
CIP Code: 11.0202
Prerequisites: Algebra I, Keyboarding Proficiency, Computer Technology and Computer Programming IA & B
Skill Certification Exam: #803 and/or AP Computer Science
COURSE DESCRIPTION
An advanced course in computer programming/software engineering and applications. Reviews and builds on the concepts introduced in CP I. Introduces students to dynamic allocation of data, advanced utilization of classes, advanced GUI techniques, and advanced applications of recursion through the application of mathematical concepts.

CORE STANDARDS, OBJECTIVES, AND INDICATORS

STANDARD 110202-01

Students will develop applications which make advanced use of the skills and concepts developed in Computer Programming I.
OBJECTIVES:
110202-0101 Demonstrate the ability to develop advanced applications.
  • Develop advanced applications using input, calculations, and output.
  • Develop advanced applications using IF structures.
  • Develop advanced applications using iteration.
  • Develop advanced applications using sub-programs.
  • Develop advanced applications in object-oriented programming.
  • Develop advanced applications using recursion.
  • Develop advanced applications using 1-d arrays.
  • Develop advanced applications using files (sequential files) or a simple database.

STANDARD 110202-02

Students will use more efficient searching and sorting algorithms.
OBJECTIVES:
110202-0201 Demonstrate the ability to search data structures in programs.
  • Develop a binary search.
  • Develop a hash search including best and worst, average and hash searches.
  • Compare efficiency of sequential and binary searches.

110202-0202 Demonstrate the ability to sort data structures in programs.
  • Sort arrays using quadratic (n²) sorts.
  • Sort arrays using binary (n log n) sorts.
  • Compare the efficiency of the various sorts using BigO notation including best, worst and average.

STANDARD 110202-03

Students will utilize 2 D Arrays
OBJECTIVES
110202-0301 Utilize multidimensional arrays.
  • Initialize arrays.
  • Input data into arrays.
  • Output data from arrays.
  • Perform operations on arrays.
  • Perform searches on arrays.

STANDARD 110202-04

Students will properly employ dynamic data structures and abstract data types (ADTs).
OBJECTIVES
110202-0401 Demonstrate the ability to create and use linked lists in programs.
  • Declare pointer/reference identifiers.
  • Create nodes.
  • Insert/Delete nodes
  • Output the values in a linked list.
  • Search for a value in a linked list.
  • Understand a header node.
  • Develop linked list applications.

110202-0402 Demonstrate the ability to use stacks (arrays and linked lists) in programs.
  • Declare stack structures.
  • Initialize stacks.
  • Check for empty and full stacks.
  • Push on to and pop off values from stacks.
  • Develop stack applications.

110202-0403 Demonstrate the ability to use queues (arrays and linked lists) in programs.
  • Declare queue structures.
  • Check for empty and full queues.
  • Initialize queues.
  • Enqueue values on to and dequeue values off of queues.
  • Develop queue applications.

110202-0404 Demonstrate the ability to use binary trees in programs.
  • Declare pointer/references identifiers.
  • Create binary tree nodes identifiers.
  • Insert nodes into a binary tree.
  • Traverse a tree (pre-order, post-order, in-order)
  • Search for values in ordered binary trees.
  • Develop binary tree applications.

STANDARD 110202-05

Students will design and implement classes using inheritance and composition.
OBJECTIVES
110202-0501 Create user-defined inherited classes.
110202-0502 Demonstrate overloading techniques.
  • Demonstrate function overloading
  • Demonstrate operator overloading (C++ only)

STANDARD 110202-06

Students will develop an individual program of significant complexity and portfolio of their work.
OBJECTIVES
110202-0601 Create an individual program of significant complexity
110202-0602 Compile a portfolio of the individual and group programs developed during the course.

STANDARD 110202-07

Students will participate in a work-based learning experience and/or competition.
OBJECTIVES
110202-0701 Participate in a work-based learning experience.
  • Field trip to a software engineering firm
  • Job shadow
  • Internship
  • Industry guest speaker
  • Post-secondary guest speaker
  • Industry interview

110202-0702 Participate at a student programming competition.
  • University of Utah High School Computer Programming Contest
  • Utah State University High School Computer Programming Contest
  • Utah Valley State College Technology Fair (robotics)
  • FBLA/Skills or other club competitions.
  • In class competition